home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
bbs_door
/
edoor09.zip
/
EDOOR.DOC
< prev
next >
Wrap
Text File
|
1996-02-08
|
12KB
|
384 lines
eDOOR v.9b! (c) 1995-96 by Tom Fotherby/enigma
Features:
·Supports ALL com ports & irq's (Fossil Driver req'ed)
·Locked baud rates up to 115,200bps!
·ANSi Emulation built-in! (ansi.sys not needed under any circumstances)
·DOOR.SYS and Dorinfo#.DEF Support!
·DesqView, OS/2, Windows, and Dos time slicing routines.
·So simple to use, my Rabbit could program a door with this.. 8)
·It's being constantly updated with NEW and IMPROVED features!
·Registration fee is ONLY $10! Free Upgrades!!
Introduction...
---------------
This door-making kit is designed to let anyone with a basic knowlege of
Turbo Pascal create doors, whether it be a door game, or a one liners
program! All you need is Turbo Pascal 7.0 and a little creativity.
Installation
~~~~~~~~~~~~
Just copy 'Door.Tpu' into your Units directory (usually 'C:\TP\UNITS')
Lets cut to the programming!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To impliment the door routines into your program, you must add "Door"
To your uses statement.
Example:
Uses Door;
Now you're ready to begin!
Structure of the config file.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The config file is just a standard text file, with the following lines in
it. For refrence, i've included a sample config file named 'SAMPLE.CFG'
to get ya started.
Line #1 - The name of the BBS
Line #2 - Sysop's name (first/last)
Line #3 - drop file type ("door.sys" for door.sys systems, "dorinfo.def" for
dorinfo#.def systems)
Line #4 - The locked baud rate. If none, then set this to 0.
Parameters
~~~~~~~~~~
This is a list of Parameters that can be used (after you compile your door!)
/N# - # is the node number, ex. door.exe /N1
/B# - Sets the locked baud rate to #, ex. door.exe /B57600
/D? - The path to where the Drop file may be found, ex. door.exe /Dc:\bbs
Loading the config file for the door..
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cfgfn:='file.cfg';
LoadCfg;
This will initialize the door with the config/drop files. The
Config file name is stored in variable "Cfgfn".
(Refer to 'Structure of the Config File')
Output Procedures..
~~~~~~~~~~~~~~~~~~~
DClrScr;
Clears Local/Remote screens.
DWrite(s: string);
Writes a string to local/remote.
DWriteln(s: string);
Writes a string to local/remote, and adds a carriage return/line feed.
DWritei(i: integer);
Writes an integer to local/remote.
DWriteiln(i: integer);
Writes an integer to local/remote, and adds a cr/lf.
DWriteli(i: integer);
Writes a longint to local/remote.
DWriteliln(i: integer);
Writes a longint to local/remote, and adds a cr/lf.
Crlf;
Just prints up a blank line. I got sick of doing a "dwriteln('');"
every time i wanted to print up a blank line, so i thought this
little procedure would save some time.
DGotoXY(x: byte, y: byte);
Equivilant of GOTOXY(x,y), use this instead. It puts the cursor
position at x,y. *NOTE* this only works if the user has ANSi
Emulation!
TypeFile(filename: string, continue: boolean);
This will display a ans/asc file both locally and remotely..
Example:
TypeFile('help', true);
This will display the file Help.ans/Help.asc/Help rip, (depending
on which graphics emulation the remote side supports) With a
'More [Y/n]?' prompt every 24 lines. (this prompt is configurable,
see below!!) Also, you may specify a file extention, but it will
ONLY display that file, it WON'T pick .asc/.ans/.rip depending on
which graphics emulation the remote side has!!
Moreyn: string;
You SHOULD define this string if you use the TypeFile command!
It is a prompt every 24 lines, asking the user 'More [Y/n]?'
Heres how mine looks:
Moreyn:='More [Y/n]?';
--OR, if you want a colorized pause string, use Pipe codes!--
(see section on pipe codes)
Moreyn:='|09More |07[|11Y|07/|05n|07]';
Colors!
~~~~~~~
Fg(foreground: byte);
Sets the foreground color.
Bg(background: byte);
Sets the Background color.
Dcolor(foreground: byte; background: byte);
Sets the foreground/background color..
Foreground Colors Background Colors
0 - Black 8 - Dark Grey 0 - Black
1 - Dark Blue 9 - Light Blue 1 - Blue
2 - Dark Green 10 - Light Green 2 - Green
3 - Dark Cyan 11 - Light Cyan 3 - Cyan
4 - Dark Red 12 - Light Red 4 - Red
5 - Dark Magneta 13 - Light Magneta 5 - Magneta
6 - Dark Yellow 14 - Light Yellow 6 - Brown
7 - Gray 15 - White 7 - Gray
DCW(s: string, color: byte);
ColorWrite! Displays a string with the color of 'color'.
Example:
Dcw('Hello World!', 1);
(would display 'Hello World!' in blue)
This would be the SAME as doing:
Fg(1);
Dwrite('Hello World!');
DCWLN(s: string, color: byte);
ColorWriteln! Displays a string with the color of 'color'
This is the same as above, but puts an enter after it outputs
the string.
DPipe(s: string);
It converts a String with Renegade/Forum hack PiPE codes
to colors! (Good for One Liners or text that changes colors a lot!)
*ALSO* see section on pipe codes.
Example:
DPiPE('|01Blue |09LiGHT blue');
DPipeln(s: string);
Same as above, but puts a enter after it outputs the text..
RndClr;
Chooses a Random color, and sets the foreground to that color.
RndClrStr(s: String);
Outputs a String in random colors! (each letter in the string
will be a different color)
Example:
RndClrStr('Hello there!');
Spin(x, y, f, b, d: byte);
A Spinner Pause prompt. X and Y are the coordinates, F, B are the
Foreground/Background colors, and D is the delay between each spin
Cycle. (To start out, use a delay of 30 or 50 for best results!)
Dynlb(question, Yesno, Noyes: string): boolean; (function)
This will display a yes/no lightbar. It uses Pipe codes (see section
on pipe codes) to display the Yes/No selections.
Example:
x:=dynlb('Blah?', '|18|12 Yes |16 |01no ', '|16|01 yes |17 |12No |16');
if x=true then dwriteln('You chose Yes')
else dwriteln('You chose No');
String Conversion Functions
~~~~~~~~~~~~~~~~~~~~~~~~~~~
center(s: string): string;
Centers a string.
Example:
DWriteln(center('this will be centered!'));
strupcase(s: string): string;
Converts a string to all uppercase.
strlocase(s: string): string;
Converts a string to all lowercase.
itos(i: integer): string;
Converts an integer to string.
litos(li: longint): string;
Converts a Longint to string.
wtos(w: word): string;
Converts a Word to string.
btos(b: boolean): string;
Converts a Boolean to string.
These Functions will let you display other variable types with the DWrite,
DPipe...etc. Procedures.
Example:
DWriteln(itos(1234));
Input Procedures...
~~~~~~~~~~~~~~~~~~~
DRead(s: string);
Reads a STRING both locally and remote..
DReadB(b: byte);
Reads a BYTE from local/remote side.
DReadC(ch: char);
Reads a CHAR from the local/remote side.
DReadI(n: integer);
Reads an INTEGER from local/remote sides..
DReadLI(n: longint);
Reads a LONGINT from local/remote sides.
DKeyPressed: Boolean;
Equiv. of KeyPressed..
Example:
dwrite('Press a key to continue..');
repeat until DKeyPressed;
INPT(s: string; lengthofstring: integer; fg: integer; bg: integer);
Inputs a string, with specifications/masked input.
Example:
inpt(blah, 20, 9, 0);
dwriteln('You typed: '+blah);
The above example will input a string with the maximum input length
of 20 characters, with a foreground color of 9 (blue) and a back-
ground color of 0 (black).
General Variables
~~~~~~~~~~~~~~~~~
Cfgfn: String;
This variable holds the filename of the configuration file.
If you do not define this, Cfgfn will default to 'door.cfg'.
DoorName: String;
Use this string to store the name of your program!
*NOTE* You should define this variable with the name of your
DOOR program!
Bpsrate: integer;
This one stores BPS rate.
Bbsname: String;
This Variable gives the bbs name (taken out of the drop file)
Fg_Clr: byte;
This variable stores the current foreground color.
Bg_Clr: byte;
This variable stores the current background color.
Local: boolean;
True if local, false if remote.
Pause: boolean;
If true, will display a 'Press a key to continue' prompt after
every 24 lines. This defaults to false.
Pausestr: string;
It displayes this every 24 lines if Pause:=true.
You *SHOULD* set this if you use Pause!
Example..
Pausestr:='>>Paused.. Press a key<<';
Node: byte;
Returns the current node #.. It is changed with the /N#
parameter (where # = the node #)
TimeOut: String;
When a users time limit is overwith, it will display this
string.. Example:
TimeOut:='Your times up, returning to bbs!';
Status: boolean;
If true, it will display the status line at the bottom of the screen,
if false, will NOT display the status line. This defaults to true.
StatusFg: byte;
The status line foreground color
StatusBg: byte;
The status line background color
SysopF: string;
The string that holds the Sysops 1st name (from config file)
SysopL: string;
The string that holds the Sysops last name (from config file)
UserH: string;
The users Handle
UserF: string;
The users 1st name
UserL: string;
The users last name
UserAcs: word;
The users Access level (on the bbs, taken from drop file);
Pipe Codes, what are they/how do i use em?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pipe Codes are commonly used in BBS message bases to change colors of the
text and stuff.. They are also a part of the DPipe and DPipeLn procedures!
...AND, they make changing colors alot, really easy!
Without Pipe codes:
fg(1);
dwrite('Blue!');
fg(2);
dwrite('Green!');
fg(5);
dwrite('Purple!');
With PIPE CODES and the DPipe/DPipeln procedure:
dpipe('|01Blue! |02Green! |05Purple!');
(Those two examples do exactly the same thing!)
Heres a list of the pipe codes:
|01 - Dark Blue |08 - Dark Grey |15 - White
|02 - Dark Green |09 - Light Blue
|03 - Dark Cyan |10 - Light Green
|04 - Dark Red |11 - Light Cyan
|05 - Dark Purple |12 - Light Red
|06 - Dark Yellow |13 - Light Purple
|07 - Grey |14 - Light Yellow
Registration
~~~~~~~~~~~~
Registration is a mere $10. If you decide to use this door, please use one
of the two methods of registration.
#1) Dial 1-900-622-8227, and enter "651-6472" when it asks you for a number.
This call will cost you $10. Next, call The O-Zone (Support) bbs, and
E-Mail enigma (sysop) with the code you have received from the 1-900#.
#2) Send a $10 check or money order (made out to Tom Fotherby) to:
Tom Fotherby/eDOOR
3535 Hadden
Rochester, Mi 48306
There is NO difference between the non-registered eDOOR and registered eDOOR.
But if you find this program useful, and understand how many hours i've put
into it, PLEASE register. Thanks! -enigma
The O-Zone BBS
(810) 651-6472
eDOOR Support Site
DiNK's Software support site
virt! net WHQ